package cn.trda.base.annocation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
import java.util.ResourceBundle;

public class Bank {
	/*
	 * 1  配置文件  将经常会变动的东西放到代码外。
	 * 2 注解  @Documented//生成文档用，当不知道
			@Inherited//声明被该注解应用的类可以被子类继承
			@Retention(RetentionPolicy.RUNTIME)//指定注解的生效时间
			@Target(value={ElementType.METHOD})//指定注解可以打的地方
	 * dsdfsdf sdfasdfasdfasdfasdfasdfsadfsadf 悠悠 
	 */
		
		private  int money;//存款
		public Bank(int money){
			this.money=money;
		}
		@MyAnnocation(20000)
		public void takeMoney(int outMoney){//只吐100  20000
			if(outMoney>money){
				System.out.println("没有那么多钱");
				return;
			}
			if(outMoney%100!=0){
				System.out.println("没有那么零钱");
				return;
			}
			//ResourceBundle  rb=ResourceBundle.getBundle("jdbc");
			//int max=Integer.parseInt( rb.getString("max"));
			//获取最大值
				//1 获取字节码对象
				Class clazz=Bank.class;
				//2 拿到所有方法
				int max=0;
				Method [] ms=	clazz.getMethods();
				 for(Method m:ms){
					 //3看有没有找我们要找的注解
					 if(m.isAnnotationPresent(MyAnnocation.class)){
						 //4 找到了就获取属性值
						 MyAnnocation ma=	m.getAnnotation(MyAnnocation.class);
						max= ma.value();
					 }
					 
				 }
			if(outMoney>max){
				System.out.println("超限");
				return;
			}
			System.out.println("取钱成功");
			
		}
		

}
